package cn.iocoder.lw.module.core.controller.admin.evaluation.vo.evaluation;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "管理后台 - 工单评价 Response VO")
@Data
public class CoreWorkOrderEvaluationRespVO {

    @Schema(description = "评价编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Long id;

    @Schema(description = "工单编号", example = "12345")
    private Long workOrderId;

    @Schema(description = "工单编号-自定义生成", example = "WO1234567890")
    private String workOrderNo;

    @Schema(description = "发起人ID", example = "12345")
    private Long initiatorId;

    @Schema(description = "发起人姓名", example = "张三")
    private String initiatorName;

    @Schema(description = "接单人ID", example = "12345")
    private Long assigneeId;

    @Schema(description = "接单人姓名", example = "李师傅")
    private String assigneeName;

    @Schema(description = "评价等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "5")
    private Integer evaluationLevel;

    @Schema(description = "评价等级名称", example = "非常满意")
    private String evaluationLevelName;

    @Schema(description = "总体评分（1-5分）", example = "5")
    private Integer overallScore;

    @Schema(description = "服务态度评分（1-5分）", example = "5")
    private Integer serviceAttitudeScore;

    @Schema(description = "专业技能评分（1-5分）", example = "5")
    private Integer professionalSkillScore;

    @Schema(description = "响应速度评分（1-5分）", example = "5")
    private Integer responseSpeedScore;

    @Schema(description = "评价内容", example = "服务很好，师傅很专业")
    private String content;

    @Schema(description = "评价图片URL", example = "https://example.com/image1.jpg,https://example.com/image2.jpg")
    private String images;

    @Schema(description = "是否匿名评价", example = "false")
    private Boolean anonymous;

    @Schema(description = "标签", example = "专业,准时,服务好")
    private String tags;

    @Schema(description = "商家回复", example = "感谢您的评价，我们会继续提供优质服务")
    private String merchantReply;

    @Schema(description = "商家回复时间", example = "2023-12-01 14:30:00")
    private LocalDateTime merchantReplyTime;

    @Schema(description = "是否已读", example = "false")
    private Boolean read;

    @Schema(description = "备注", example = "用户评价")
    private String remark;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime updateTime;

}